home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 44
/
Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso
/
Aminet
/
util
/
libs
/
MMULib.lha
/
MMULib
/
Fixes
/
FixCybAccess.readme
< prev
next >
Wrap
Text File
|
2000-02-26
|
1KB
|
34 lines
FixCybAccess
_____________________________________________________________________________
The cybscsi.device and the z3scsi.device of Phase5 accesses chip memory
for a controlled busy-wait loop. I don't know precisely what this
busy-wait is used for, but the device does this by accessing the chip
memory location 0xffff0 like this,
nop
tst.w $ffff0
nop
however, WITHOUT EVEN ALLOCATING THIS LOCATION BEFORE. Obviously, this makes
MuGuardianAngle SCREAM, and for good reason: What you see here is very bad
programming style and very questionable for a commercial product. First of
all, the chip memory timing depends on the DMA traffic of the native hardware
and hence on the screen solution. Second, even IF this busy wait has to made,
it is required to ALLOCATE the memory location used for the dummy read.
The FixCybAccess fixes this by an AllocAbs() of this location and hence
avoids this hit.
It *DOES NOT* fix the general DMA related problems of the cybscsi.device, as
for example not calling the Os functions CachePreDMA() and CachePostDMA() and hence
passing a (possibly invalid) logical address to the DMA logic instead of
the true physical address.
You only need to run this program if you want to use the MuGuardianAngel. To
install it, type
run FixCybAccess
on the shell. To abort it, break it with a ^C signal.